package com.ruoyi.erp.service;

import java.util.List;
import com.ruoyi.erp.domain.BillSettleDetail;
import com.ruoyi.erp.domain.SettleMonthBill;
import com.ruoyi.erp.domain.SettlePo;

/**
 * 结算明细Service接口
 * 
 * @author sauger
 * @date 2022-03-25
 */
public interface IBillSettleDetailService 
{
    /**
     * 查询结算明细
     * 
     * @param settleId 结算明细主键
     * @return 结算明细
     */
    public BillSettleDetail selectBillSettleDetailBySettleId(Integer settleId);

    /**
     * 查询结算明细列表
     * 
     * @param billSettleDetail 结算明细
     * @return 结算明细集合
     */
    public List<BillSettleDetail> selectBillSettleDetailList(BillSettleDetail billSettleDetail);

    /**
     * 新增结算明细
     * 
     * @param billSettleDetail 结算明细
     * @return 结果
     */
    public int insertBillSettleDetail(BillSettleDetail billSettleDetail);

    /**
     * 修改结算明细
     * 
     * @param billSettleDetail 结算明细
     * @return 结果
     */
    public int updateBillSettleDetail(BillSettleDetail billSettleDetail);

    /**
     * 批量删除结算明细
     * 
     * @param settleIds 需要删除的结算明细主键集合
     * @return 结果
     */
    public int deleteBillSettleDetailByIds(String settleIds);

    /**
     * 删除结算明细信息
     * 
     * @param settleId 结算明细主键
     * @return 结果
     */
    public int deleteBillSettleDetailById(Integer settleId);

    /**
     * 根据结算id 获取结算账单明细
     * @param settleId
     * @return
     */
    public List<SettleMonthBill> selectSettleMonthBillBySettleId(Integer settleId);

    /**
     * 根据结算id，获取结算po明细
     * @param settleId
     * @return
     */
    public List<SettlePo> selectSettlePoBySettleId(Integer settleId);

    /**
     *
     * @param bill
     * @return
     */
    public int insertSettleBillMonthBill(Integer settleId, SettleMonthBill bill);

    public int insertSettleBillPo(Integer settleId, SettlePo po);

    public int deleteSettleBillMonthBill(SettleMonthBill bill);

    public int updateSetlleBillMonthBill(SettleMonthBill settleMonthBill);

    public int deleteSettleBillPo(SettlePo po);

    public int updateSettleBillPo(SettlePo existPo, SettlePo newPo);


}
